home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 3863 / 3863.xpi / chrome / imacros.jar / content / commdlg.js < prev    next >
Text File  |  2010-01-25  |  5KB  |  5 lines

  1.  
  2. /*
  3. (c) Copyright 2008 iOpus Software GmbH - http://www.iopus.com
  4. */
  5. var CommDialogHook={get strings(){var bsvc=imns.Cc["@mozilla.org/intl/stringbundle;1"].getService(imns.Ci.nsIStringBundleService);var b=bsvc.createBundle("chrome://imacros/locale/rec.properties");return b;},get storage(){var str=null;try{str=imns.Cc["@iopus.com/storage;1"];str=str.getService(imns.Ci.nsISupports);str=str.wrappedJSObject;return str;}catch(e){Components.utils.reportError(e);throw "Can't instantiate Storage!";}},get opener(){if(!this.m_opener){var wm=imns.Cc["@mozilla.org/appshell/window-mediator;1"].getService(imns.Ci.nsIWindowMediator);var enum=wm.getEnumerator("navigator:browser");while(enum.hasMoreElements()){var win=enum.getNext();if(this.checkWindowOrigin(win.content,window.opener)){this.m_opener=win;break;}}}if(!this.m_opener)this.m_opener=window.opener;return this.m_opener;},get playing(){return this.opener.mplayer.playing;},get recording(){return this.opener.imacrosc;},get osvc(){var os=imns.Cc["@mozilla.org/observer-service;1"];return os.getService(imns.Ci.nsIObserverService);},checkWindowOrigin:function(origin_win,win){if(origin_win==win)return true;var frames=origin_win.frames;if(frames&&frames.length){for(var i=0;i<frames.length;i++)if(this.checkWindowOrigin(frames[i],win))return true;}return false;},checkDialogType:function(){this.dlgType=null;this.loginContainer=document.getElementById("loginContainer");if(!this.loginContainer.hidden){this.loginTextbox=document.getElementById("loginTextbox");this.password1Container=document.getElementById("password1Container");if(!this.password1Container.hidden){this.dlgType="login";this.password1Textbox=document.getElementById("password1Textbox");}else{this.dlgType="prompt";}}else{this.infoIcon=document.getElementById("info.icon");if(/alert/.test(this.infoIcon.className)){this.dlgType="alert";}else if(/question/.test(this.infoIcon.className)){this.dlgType="confirm";}}},onAccept:function(){if(this.recording){switch(this.dlgType){case "login":this.result.val2=this.password1Textbox.value;case "prompt":this.result.val1=this.loginTextbox.value;case "confirm":case "alert":default:this.result.accept=true;}}return commonDialogOnAccept();},onCancel:function(){if(this.recording){this.result.accept=false;}},hookButtons:function(){var dialog=document.documentElement;dialog.setAttribute("ondialogaccept","return CommDialogHook.onAccept()");dialog.setAttribute("ondialogcancel","CommDialogHook.onCancel()");},showMessage:function(msg){var dialog=document.documentElement;var hbox=document.createElement("hbox");var hbox_label=document.createElement("hbox");var hbox_image=document.createElement("hbox");var el=document.createElement("label");var image=document.createElement("image");hbox.setAttribute("id","imacros-commdlg-message");hbox.setAttribute("align","center");hbox.appendChild(hbox_label);hbox.appendChild(image);hbox_label.setAttribute("pack","center");hbox_label.setAttribute("flex","1");hbox_label.appendChild(el);el.setAttribute("value",msg);image.setAttribute("id","imacros-commdlg-image");dialog.insertBefore(hbox,dialog.firstChild);},init:function(){this.checkDialogType();if(this.recording){this.hookButtons();this.result=new Object();this.showMessage(this.strings.GetStringFromName("imacrosrecordingdialog"));}else if(this.playing){this.action=this.storage.getObjectForWindow(this.opener.im_wid,"onDialogAction");this.showMessage(this.strings.GetStringFromName("imacrosreplayingdialog"));switch(this.dlgType){case "alert":case "confirm":break;case "login":if(!this.action){this.opener.alert("No credentials or unsuccessful login.");window.close();}this.loginTextbox.value=this.action.username;this.password1Textbox.value=this.action.password;break;case "prompt":if(this.action.content)this.loginTextbox.value=this.action.content;break;default:}this.timer=imns.Cc["@mozilla.org/timer;1"].createInstance(imns.Ci.nsITimer);this.timer.initWithCallback(this,this.action.timeout,imns.Ci.nsITimer.TYPE_ONE_SHOT);}this.initialized=true;},notify:function(timer){var dialog=document.documentElement;this.storage.clearWindowObject(this.opener.im_wid,"onDialogAction");this.timer=null;if(this.action.accept)dialog.acceptDialog();else dialog.cancelDialog();},handleEvent:function(evt){if(evt.type=="load"){window.removeEventListener("load",this,false);window.addEventListener("unload",this,false);if(!this.recording&& !this.playing)return;if(!/^chrome:\/\//.test(window.opener.location))this.init();}else if(evt.type=="unload"){window.removeEventListener("unload",this,false);if(this.initialized&&this.recording){this.result.type=this.dlgType;this.osvc.notifyObservers(this.opener,"imacros-commdlg-hook",this.result.toSource());}}}};window.addEventListener("load",CommDialogHook,false);